package org.dczl.system.domain.bo;

import org.dczl.system.domain.DpProject;
import org.dczl.common.mybatis.core.domain.BaseEntity;
import org.dczl.common.core.validate.AddGroup;
import org.dczl.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 项目业务对象 dp_project
 *
 * @author jia
 * @date 2025-04-16
 */
@Data
@AutoMapper(target = DpProject.class, reverseConvertGenerate = false)
public class DpProjectBo {

    /**
     * 主键id
     */
    @NotNull(message = "主键id不能为空", groups = {EditGroup.class})
    private Long id;

    /**
     * 实验室id
     */
    @NotNull(message = "实验室id不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long labId;

    /**
     * 任课教师
     */
    @NotBlank(message = "任课教师不能为空", groups = {AddGroup.class, EditGroup.class})
    private String teacher;

    /**
     * 课程名称
     */
    @NotBlank(message = "课程名称不能为空", groups = {AddGroup.class, EditGroup.class})
    private String courseName;

    /**
     * 项目名称
     */
    @NotBlank(message = "项目名称不能为空", groups = {AddGroup.class, EditGroup.class})
    private String projectName;

    /**
     * 实验类型
     */
    @NotBlank(message = "实验类型不能为空", groups = {AddGroup.class, EditGroup.class})
    private String projectType;

    /**
     * 计划时数
     */
    @NotNull(message = "计划时数不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer projectNum;

    /**
     * 每批组数
     */
    @NotNull(message = "每批组数不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer groupNum;

    /**
     * 每组人数
     */
    @NotNull(message = "每组人数不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer groupPeopleNum;

    /**
     * 专业
     */
    @NotBlank(message = "专业不能为空", groups = {AddGroup.class, EditGroup.class})
    private String major;

    /**
     * 班级
     */
    @NotBlank(message = "班级不能为空", groups = {AddGroup.class, EditGroup.class})
    private String classes;

    /**
     * 人数
     */
    @NotNull(message = "人数不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer classesPeopleNum;

    /**
     * 周
     */
    @NotBlank(message = "周不能为空", groups = {AddGroup.class, EditGroup.class})
    private String week;

    /**
     * 星期
     */
    @NotBlank(message = "星期不能为空", groups = {AddGroup.class, EditGroup.class})
    private String today;

    /**
     * 节数
     */
    @NotNull(message = "节数不能为空", groups = {AddGroup.class, EditGroup.class})
    private Integer pitchNum;

    /**
     * 节
     */
    @NotBlank(message = "节不能为空", groups = {AddGroup.class, EditGroup.class})
    private String pitch;

    /**
     * 开课时间
     */
    @NotBlank(message = "开课时间不能为空", groups = {AddGroup.class, EditGroup.class})
    private String startTime;


}
